package org.jeecgframework.web.system.pojo.base;

import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.persistence.*;
import javax.xml.soap.Text;
import java.sql.Blob;
import java.util.List;
import java.util.Map;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;

/**   
 * @Title: Entity
 * @Description: 备件申请单
 * @author onlineGenerator
 * @date 2018-02-06 09:59:31
 * @version V1.0   
 *
 */
@Entity
@Table(name = "CBS_EQUIPMENT_APPLY", schema = "")
@SuppressWarnings("serial")
public class CbsEquipmentApplyEntity implements java.io.Serializable {
	/**主键*/
	private String id;
	/**申请单编号*/
	@Excel(name="申请单编号")
	private String recordId;
	/**服务单ID*/
	@Excel(name="服务单ID")
	private String serviceId;
	/**序列号*/
	@Excel(name="序列号")
	private String sn;
	/**机型*/
	@Excel(name="机型")
	private String equipmentType;
	/**随机编号*/
	@Excel(name="随机编号")
	private String code;
	/**服务单中的SR号*/
	@Excel(name="服务单中的SR号")
	private String srCode;
	/**是否自提*/
	@Excel(name="是否自提")
	private Integer zt;
	/**姓名*/
	@Excel(name="姓名")
	private String userName;
	/**电话*/
	@Excel(name="电话")
	private String phone;
	/**影院名称*/
	@Excel(name="影院名称")
	private String cinemaName;
	/**所在省*/
	@Excel(name="所在省")
	private TSTerritory sheng;
	/**所在市*/
	@Excel(name="所在市")
	private TSTerritory shi;
	/**详细地址*/
	@Excel(name="详细地址")
	private String address;
	/**仓库ID*/
	@Excel(name="仓库ID")
	private String warehouseId;
	/**申请理由*/
	@Excel(name="申请理由")
	private String applyReason;
	/**400备注*/
	@Excel(name="备注")
	private String memo;
	/**状态*/
	@Excel(name="状态")
	private Integer status;
	/**审批人*/
	@Excel(name="审批人")
	private String approveUser;
	/**CSA注意事项*/
	@Excel(name="CSA注意事项")
	private String csaAttention;
	/**工程师注意事项*/
	@Excel(name="工程师注意事项")
	private String engineerAttention;
	/**原因*/
	@Excel(name="原因")
	private String reasion;
	/**附件ID*/
	@Excel(name="附件ID")
	private java.lang.String fileId;
	/**创建人名称*/
	@Excel(name="创建人名称")
	private String createName;
	/**创建人登录名称*/
	@Excel(name="创建人登录名称")
	private String createBy;
	/**创建日期*/
	@Excel(name="创建日期")
	private Date createDate;
	/**更新人名称*/
	@Excel(name="更新人名称")
	private String updateName;
	/**更新人登录名称*/
	@Excel(name="更新人登录名称")
	private String updateBy;
	/**更新日期*/
	@Excel(name="更新日期")
	private Date updateDate;
	//标记时间（检查备件申请状态，超过两小时未审批的置成已通过）
	private Integer signTime;
	//判断序列号验证是否通过
	private Integer isException;
	//判断是HD申请的备件还是工程师申请的备件 1：HD;2：工程师
	private Integer judge;
	//判断是否发过邮件短信
	private Integer isSend;

	//只做页面显示用
	private List<CbsEquipmentApplyDetailEntity> cbsEquipmentApplyDetailEntities;
	private List<CbsDeliverEquipmentEntity> cbsDeliverEquipmentEntities;
	private String eqDate;  //计算剩余多少时间可以修改备件，页面显示用

	List<Map<String, Object>> cbsDeliveList;

	@Transient
	public String getEqDate() {
		return eqDate;
	}

	public void setEqDate(String eqDate) {
		this.eqDate = eqDate;
	}

	@Transient
	public List<CbsDeliverEquipmentEntity> getCbsDeliverEquipmentEntities() {
		return cbsDeliverEquipmentEntities;
	}

	public void setCbsDeliverEquipmentEntities(List<CbsDeliverEquipmentEntity> cbsDeliverEquipmentEntities) {
		this.cbsDeliverEquipmentEntities = cbsDeliverEquipmentEntities;
	}

	@Transient
	public List<Map<String, Object>> getCbsDeliveList() {
		return cbsDeliveList;
	}

	public void setCbsDeliveList(List<Map<String, Object>> cbsDeliveList) {
		this.cbsDeliveList = cbsDeliveList;
	}


	@Transient
	public List<CbsEquipmentApplyDetailEntity> getCbsEquipmentApplyDetailEntities() {
		return cbsEquipmentApplyDetailEntities;
	}

	public void setCbsEquipmentApplyDetailEntities(List<CbsEquipmentApplyDetailEntity> cbsEquipmentApplyDetailEntities) {
		this.cbsEquipmentApplyDetailEntities = cbsEquipmentApplyDetailEntities;
	}

	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  主键
	 */
	@Id
	@GeneratedValue(generator = "paymentableGenerator")
	@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
	@Column(name ="ID",nullable=false,length=36)
	public String getId(){
		return this.id;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  主键
	 */
	public void setId(String id){
		this.id = id;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  申请单编号
	 */
	@Column(name ="RECORD_ID",nullable=true,length=50)
	public String getRecordId(){
		return this.recordId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  申请单编号
	 */
	public void setRecordId(String recordId){
		this.recordId = recordId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  服务单ID
	 */
	@Column(name ="SERVICE_ID",nullable=true,length=36)
	public String getServiceId(){
		return this.serviceId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  服务单ID
	 */
	public void setServiceId(String serviceId){
		this.serviceId = serviceId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  序列号
	 */
	@Column(name ="SN",nullable=true,length=50)
	public String getSn(){
		return this.sn;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  序列号
	 */
	public void setSn(String sn){
		this.sn = sn;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  机型
	 */
	@Column(name ="EQUIPMENT_TYPE",nullable=true,length=50)
	public String getEquipmentType(){
		return this.equipmentType;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  机型
	 */
	public void setEquipmentType(String equipmentType){
		this.equipmentType = equipmentType;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  随机编号
	 */
	@Column(name ="CODE",nullable=true,length=32)
	public String getCode(){
		return this.code;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  随机编号
	 */
	public void setCode(String code){
		this.code = code;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  服务单中的SR号
	 */
	@Column(name ="SR_CODE",nullable=true,length=32)
	public String getSrCode(){
		return this.srCode;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  服务单中的SR号
	 */
	public void setSrCode(String srCode){
		this.srCode = srCode;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  是否自提
	 */
	@Column(name ="ZT",nullable=true,length=32)
	public Integer getZt(){
		return this.zt;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  是否自提
	 */
	public void setZt(Integer zt){
		this.zt = zt;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  姓名
	 */
	@Column(name ="USER_NAME",nullable=true,length=32)
	public String getUserName(){
		return this.userName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  姓名
	 */
	public void setUserName(String userName){
		this.userName = userName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  电话
	 */
	@Column(name ="PHONE",nullable=true,length=32)
	public String getPhone(){
		return this.phone;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  电话
	 */
	public void setPhone(String phone){
		this.phone = phone;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  影院名称
	 */
	@Column(name ="CINEMA_NAME",nullable=true,length=32)
	public String getCinemaName(){
		return this.cinemaName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  影院名称
	 */
	public void setCinemaName(String cinemaName){
		this.cinemaName = cinemaName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  所在省
	 */
	@JsonIgnore
	@ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.EAGER)
	@JoinColumn(name = "SHENG")
	public TSTerritory getSheng(){
		return this.sheng;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  所在省
	 */
	public void setSheng(TSTerritory sheng){
		this.sheng = sheng;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  所在市
	 */
	@JsonIgnore
	@ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.EAGER)
	@JoinColumn(name = "SHI")
	public TSTerritory getShi(){
		return this.shi;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  所在市
	 */
	public void setShi(TSTerritory shi){
		this.shi = shi;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  详细地址
	 */
	@Column(name ="ADDRESS",nullable=true,length=32)
	public String getAddress(){
		return this.address;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  详细地址
	 */
	public void setAddress(String address){
		this.address = address;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  仓库ID
	 */
	@Column(name ="WAREHOUSE_ID",nullable=true,length=32)
	public String getWarehouseId(){
		return this.warehouseId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  仓库ID
	 */
	public void setWarehouseId(String warehouseId){
		this.warehouseId = warehouseId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  申请理由
	 */
	@Column(name ="APPLY_REASON",nullable=true,length=32)
	public String getApplyReason(){
		return this.applyReason;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  申请理由
	 */
	public void setApplyReason(String applyReason){
		this.applyReason = applyReason;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  备注
	 */
	@Column(name ="MEMO",nullable=true,length=32)
	public String getMemo(){
		return this.memo;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  备注
	 */
	public void setMemo(String memo){
		this.memo = memo;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  状态
	 */
	@Column(name ="STATUS",nullable=true,length=32)
	public Integer getStatus(){
		return this.status;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  状态
	 */
	public void setStatus(Integer status){
		this.status = status;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  审批人
	 */
	@Column(name ="APPROVE_USER",nullable=true,length=32)
	public String getApproveUser(){
		return this.approveUser;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  审批人
	 */
	public void setApproveUser(String approveUser){
		this.approveUser = approveUser;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  CSA注意事项
	 */
	@Column(name ="CSA_ATTENTION",nullable=true,length=255)
	public String getCsaAttention(){
		return this.csaAttention;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  CSA注意事项
	 */
	public void setCsaAttention(String csaAttention){
		this.csaAttention = csaAttention;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  工程师注意事项
	 */
	@Column(name ="ENGINEER_ATTENTION",nullable=true,length=255)
	public String getEngineerAttention(){
		return this.engineerAttention;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  工程师注意事项
	 */
	public void setEngineerAttention(String engineerAttention){
		this.engineerAttention = engineerAttention;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  原因
	 */
	@Column(name ="REASION",nullable=true,length=255)
	public String getReasion(){
		return this.reasion;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  原因
	 */
	public void setReasion(String reasion){
		this.reasion = reasion;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人名称
	 */
	@Column(name ="CREATE_NAME",nullable=false,length=50)
	public String getCreateName(){
		return this.createName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人名称
	 */
	public void setCreateName(String createName){
		this.createName = createName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人登录名称
	 */
	@Column(name ="CREATE_BY",nullable=false,length=50)
	public String getCreateBy(){
		return this.createBy;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人登录名称
	 */
	public void setCreateBy(String createBy){
		this.createBy = createBy;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  创建日期
	 */
	@Column(name ="CREATE_DATE",nullable=false,length=20)
	public Date getCreateDate(){
		return this.createDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  创建日期
	 */
	public void setCreateDate(Date createDate){
		this.createDate = createDate;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  更新人名称
	 */
	@Column(name ="UPDATE_NAME",nullable=true,length=50)
	public String getUpdateName(){
		return this.updateName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  更新人名称
	 */
	public void setUpdateName(String updateName){
		this.updateName = updateName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  更新人登录名称
	 */
	@Column(name ="UPDATE_BY",nullable=true,length=50)
	public String getUpdateBy(){
		return this.updateBy;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  更新人登录名称
	 */
	public void setUpdateBy(String updateBy){
		this.updateBy = updateBy;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  更新日期
	 */
	@Column(name ="UPDATE_DATE",nullable=true,length=20)
	public Date getUpdateDate(){
		return this.updateDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  更新日期
	 */
	public void setUpdateDate(Date updateDate){
		this.updateDate = updateDate;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  附件ID
	 */
	@Column(name ="FILE_ID",nullable=true,length=32)
	public java.lang.String getFileId(){
		return this.fileId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  附件ID
	 */
	public void setFileId(java.lang.String fileId){
		this.fileId = fileId;
	}

	@Column(name ="is_exception",nullable=true,length=32)
	public Integer getIsException() {
		return isException;
	}

	public void setIsException(Integer isException) {
		this.isException = isException;
	}

	@Column(name ="judge",nullable=true,length=32)
	public Integer getJudge() {
		return judge;
	}

	public void setJudge(Integer judge) {
		this.judge = judge;
	}

	@Column(name ="sign_time",nullable=true)
	public Integer getSignTime() {
		return signTime;
	}

	public void setSignTime(Integer signTime) {
		this.signTime = signTime;
	}

	@Column(name ="is_send",nullable=true,length=10)
	public Integer getIsSend() {
		return isSend;
	}

	public void setIsSend(Integer isSend) {
		this.isSend = isSend;
	}
}
